home *** CD-ROM | disk | FTP | other *** search
/ Enter 2010 January / ENTER_2010_01.iso / Programy / Gry / Base_Invaders_ / BaseInvadersSetup1.3.exe / {app} / Scripts / QuickStartSpawners.lua < prev    next >
Encoding:
Text File  |  2007-01-25  |  1.8 KB  |  73 lines

  1.  
  2. SpawnGroup = {};
  3. SpawnGroup.Prob = {};
  4. --SpawnGroup.Prob.Miner  = .20;
  5. --SpawnGroup.Prob.Squad  = 1.0;
  6. --SpawnGroup.Prob.Bomber  = 3.0;
  7. --SpawnGroup.Prob.Kamikaze  = .20;
  8. --SpawnGroup.Prob.Driller  = 2.5;
  9. --SpawnGroup.Prob.Psychic  = 2.0;
  10. --SpawnGroup.Prob.Ninja  = 2.0;
  11. --SpawnGroup.Prob.Spiker  = 1.0;
  12. --SpawnGroup.Prob.Stacker  = .10;
  13. SpawnGroup.Prob.Basic  = 1.0;
  14. SpawnGroup.ProbTotal = 0.0;
  15. SpawnGroup.SpawnSpeed = 0.5;
  16. SpawnGroup.Time = 0.0;
  17. SpawnGroup.Spawners = {};
  18. --SpawnGroup.MaxSpawn = 25;
  19. SpawnGroup.MaxSpawn = 1;
  20.  
  21. function SpawnGroup.Update()
  22.     
  23.     SpawnGroup.Time = SpawnGroup.Time  +  SpawnGroup.SpawnSpeed * GameTimeDiff;
  24.         
  25.     --if( G.KeyTriggered( "Y" ) ) then    
  26.     --    SpawnGroup.SpawnSpeed = 0.0;    
  27.     --end
  28.     
  29.     --if( G.KeyTriggered( "U" ) ) then    
  30.     --    SpawnGroup.SpawnSpeed = 20.0;    
  31.     --end
  32.                     
  33.     SpawnGroup.SpawnSpeed = 0.1 + GameTime / 300.0;    
  34.             
  35.     while( SpawnGroup.Time > 1.0 ) do
  36.     
  37.         SpawnGroup.Time = SpawnGroup.Time - 1.0;
  38.         
  39.         if( NumInvaders >= SpawnGroup.MaxSpawn ) then
  40.             return;
  41.         end
  42.         
  43.         local rand = math.random();        
  44.         rand = rand * SpawnGroup.ProbTotal;
  45.             
  46.         local total = 0.0;
  47.         for invadername,prob in pairs( SpawnGroup.Prob ) do    
  48.             total = total + prob;
  49.             if( total > rand ) then
  50.                 local invader = G.Allocate( invadername );                
  51.                 local randpos = math.random();                
  52.                 local tpos = Vector3( 250 + math.cos(randpos*6.28) * 125 ,5,  250 + math.sin(randpos*6.28) * 125  );
  53.                 invader.SetPosition( tpos );                
  54.                 invader.Init();
  55.                 return;
  56.             end
  57.         end        
  58.     end
  59. end
  60.  
  61. function SpawnGroup.Total()
  62.     SpawnGroup.ProbTotal = 0;
  63.     for invadername,prob in pairs( SpawnGroup.Prob ) do    
  64.         SpawnGroup.ProbTotal = SpawnGroup.ProbTotal + prob;
  65.     end
  66. end
  67.  
  68. function Spawning()
  69.     SpawnGroup.Total();
  70.     SpawnGroup.Update();
  71. end
  72.  
  73. GMain[ "Spawning" ] = Spawning;